Business Intelligence generally refers to a category of software systems and applications used to improve business enterprise decision-making and governance. These software tools provide techniques for analyzing and leveraging enterprise applications and data. They are commonly applied to financial, human resource, marketing, sales, service provision, customer, and supplier analyses. More specifically, Business Intelligence tools can include reporting and analysis tools to analyze, forecast and present information, content delivery infrastructure systems to deliver, store and manage reports and analytics, data warehousing systems to cleanse and consolidate information from disparate sources, integration tools to analyze and generate workflows based on enterprise systems, database management systems to organize, store, retrieve and manage data in databases, such as relational, Online Transaction Processing (“OLTP”) and Online Analytic Processing (“OLAP”) databases, and performance management applications to provide business metrics, dashboards, and scorecards, as well as best-practice analysis techniques for gaining business insights.
In many organizations, data is stored in multiple formats and data sources that are not readily compatible. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multidimensional (e.g., OLAP), object oriented databases, and the like. Further data sources may include tabular data (e.g., spreadsheets, delimited text files), data tagged with a markup language (e.g., XML data), transactional data, unstructured data (e.g., text files, screen scrapings), hierarchical data (e.g., data in a file system, XML data), files, a plurality of reports, and any other data source accessible through an established protocol, such as, Open DataBase Connectivity (“ODBC”) and the like. Data sources may also include a data source where the data is not stored like data streams, broadcast data, and the like. Data sources are comprised of values and objects, such as dimensions, columns, rows, attributes, measures and the like, otherwise referred to as data model objects.
Because of the complexities of organizational data and their underlying data sources, it is advantageous to work with data within a semantic context. This can be accomplished by using a level of semantic abstraction that provides terms and abstract logic associated with the underlying data in order to manage, manipulate and analyze the data. A semantic layer or domain is the term for a level of abstraction based on a relational, OLAP, or other data source or a combination of more than one data sources or existing semantic layers. The semantic layer includes data model objects that describe the underlying data sources and define dimensions, attributes and measures that can be applied to the underlying data sources and data foundation metadata that describes a connection to, structure for, and aspects of the underlying data sources.
A semantic layer can be used as a level of abstraction to combine partial data sets from any number of original data sources. A semantic layer can also be used to provide logical sets to which data can be associated so that data from a wide number of sources can be meaningfully aggregated. Metadata concerning the data, such as a value for data freshness, can also be associated with the data within the logic of a semantic domain. Semantic domain technology is disclosed in the following commonly-owned U.S. Pat. Nos. 5,555,403; 6,247,008; 6,578,027; and 7,181,435, which are incorporated herein by reference.
Typically, a data model object is assigned a common business term such that the user does not need to understand the specific logic of the underlying data source but can work with familiar terminology when constructing queries or otherwise accessing the data. Examples of common business terms include customer, employee, product line, revenue, profit, attrition, fiscal year, quarter, and the like.
For example, organizational data for a retail institution may be distributed among an OLTP database for storing sales transactions, a relational database for storing data pertaining to customers, an OLAP database for storing financial data according to geographical regions, time period, and products, and various spreadsheets storing sales performance figures for each member of the sales team. The data may be stored as various data objects spread among the different data sources, for example, the OLTP data source may store data objects such as “quantities sold” and “products sold,” the relational database may store data objects such as “customer names” and “customer addresses,” and the OLAP database may store data objects such as “revenues per region,” “revenues per quarter.” and so on. Retrieving data for analysis may therefore require multiple queries to multiple data sources.
There are a number of commercially available tools that can retrieve data from multiple data sources automatically. These tools can also integrate the data into a single “report” to facilitate analysis of the retrieved data. A report refers to information automatically retrieved (i.e., in response to computer executable instructions) from a data source, where the information is structured in accordance with a report schema that specifies the form in which the information is presented in the report. For example, Business Objects™ of San Jose, Calif., sells a number of widely used report generation tools, including Crystal Reports™, Business Objects Voyager™, Business Objects Web Intelligence™, and Business Objects Enterprise™.
A report is specifically designed to facilitate working with external data sources. In addition to information regarding external data source connection drivers, the report may specify advanced filtering of data, information for combining data from different external data sources, information for updating join structures and relationships in report data, and instructions including logic to support a more complex internal data model (that may include additional constraints, relationships, and metadata). Unlike other non-report documents that are constructed without the automatic retrieval of data from a data source but may optionally import external data within a document, e.g., word processor and presentation documents, a report by design is primarily a medium for accessing, formatting, transforming, and/or presenting external data.
Data in a report may be formatted in a variety of structures, including, but not limited to, table structures, sections, cross-tables, synchronized tables, sub-reports, hybrid charts, and the like. A report can interpret the data therein and perform calculations based on the original (or a redefined) data structure and meaning of the imported data as well as on pre-existing relationships between elements of imported data. The report generation tools may support a range of calculation models.
Reports may be large because of the amount of data retrieved and the number of computations required for presenting the data to a user. Using the retail institution example above, consider a regional manager trying to access sales performance for a given region. The regional manager may have to periodically generate a report with sales revenue for various stores within the region. The report may list customer information, sales associate information, store information, region information, and quantities sold for various products and brands, and the like.
With so much information to display, viewing the report may become cumbersome. For example, consider the regional manager traveling to different stores within a region. The regional manager may desire to view the report while traveling from store to store. The regional manager may have a personal digital assistant, portable computer, handheld mobile device, or other network appliance capable of accessing and displaying documents. Because these devices are compact and equipped with small screens with limited display capabilities, the regional manager may not be able to view the entire report in a single screen. Instead, the regional manager may have to navigate through several screens, either by scrolling, touching, or clicking actions, to view the entire report. Furthermore, if the regional manager is interested in only key portions of the report, the regional manager may have to navigate the entire report before accessing the information desired.
Accordingly, it would be desirable to provide techniques to reformat reports for access by a user in a network appliance. In particular, it would be desirable to provide techniques that reformat reports for display in network appliances to show the key information desired by users.